#include <iostream>
#include <vector>

template <typename T>
void Print(const T &v)
{
    for (auto ite = v.begin(); ite != v.end(); ite++)
    {
        std::cout << *ite << " ";
    }
    std::cout<<std::endl;
}

int main()
{
    std::vector<int> v = {1, 2,99, 3,99, 4};
    // for(auto ite=v.begin();ite!=v.end();ite++)
    // {
    //     if(*ite==99)
    //     {   //元素被删除，迭代器会失效
    //         ite=v.erase(ite);
    //     }
    //     else
    //     {
    //         ite++;
    //     }
    // }
    //v.at(10);//会抛出越界异常
    //v.clear();//清空元素
    std::cout <<v.max_size()<<std::endl;
    // v.insert(v.begin()+2,99);
    // Print(v);
    // v.erase(v.begin()+2);
    // Print(v);
    // v.push_back(1);//尾插
    // v.pop_back();//尾删
    // for(int i=0;i<v.size();i++)
    // {
    //     std::cout<<v[i]<<" ";
    // }
    // std::cout<<std::endl;
    
    // begin():容器的头部迭代器，指向容器的第一个元素
    //auto ite_start = v.begin();
    // end():容器的尾部迭代器，指向容器的最后一个元素的下一个
    //auto ite_end = v.end();

    // std::cout<<v.capacity()<<std::endl;
    // std::cout<<v.size()<<std::endl;
    v.resize(20);
    v.shrink_to_fit();//缩减内存到size
    return 0;
}